sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/json/JSONModel",
    "sap/ui/core/Fragment"
],
    /**
     * @param {typeof sap.ui.core.mvc.Controller} Controller
     */
    function (Controller, JSONModel, Fragment) {
        "use strict";

        return Controller.extend("c030.controller.Main", {
            onInit: function () {
                var that = this;

                this.oView = this.getView();
                this.oMyAvatar = this.oView.byId("myAvatar");

                this._oPopover = Fragment.load({
                    id: this.oView.getId(),
                    name: "c030.view.Popover",
                    controller: this
                }).then(function (oPopover) {
                    this.oView.addDependent(oPopover);
                    this._oPopover = oPopover;
                }.bind(this));

                // 调用函数将文件转换为base64编码
                this._convertImageToBase64("img/2.jpg")
                    .then(function (base64Data) {
                        that.getView().setModel(new JSONModel({ "imgurl": base64Data }))
                        
                    })
                    .catch(function (error) {
                        console.error(error);
                    });
                


            },
            onPress: function (oEvent) {
                sap.m.MessageToast.show(oEvent.getSource().getId() + " Pressed");
            },
            onPressPopover: function (oEvent) {
                var oEventSource = oEvent.getSource(),
                    bActive = this.oMyAvatar.getActive();

                this.oMyAvatar.setActive(!bActive);

                if (bActive) {
                    this._oPopover.close();
                } else {
                    this._oPopover.openBy(oEventSource);
                }

            },
            _convertImageToBase64: function (filePath) {
                return new Promise(function (resolve, reject) {
                    // 创建一个XMLHttpRequest对象
                    var xhr = new XMLHttpRequest();

                    // 配置请求，使用GET方法获取文件
                    xhr.open("GET", filePath, true);

                    // 设置响应类型为blob（二进制数据）
                    xhr.responseType = "blob";

                    // 注册加载完成的回调函数
                    xhr.onload = function () {
                        if (xhr.status === 200) {
                            // 读取到的文件数据
                            var blob = xhr.response;

                            // 创建一个FileReader对象
                            var reader = new FileReader();

                            // 注册读取完成的回调函数
                            reader.onloadend = function () {
                                // 获取Base64编码的文件内容
                                var base64Data = reader.result;
                                resolve(base64Data);
                            };

                            // 读取blob数据为Base64编码
                            reader.readAsDataURL(blob);
                        } else {
                            reject(new Error("Failed to load the image."));
                        }
                    };

                    // 注册错误回调函数
                    xhr.onerror = function () {
                        reject(new Error("Failed to make the request."));
                    };

                    // 发送请求
                    xhr.send();
                });
            }

        });
    });
